The use of graphics in computers has increased dramatically over the years due to the development of graphics based user-friendly application programs and operating systems. To support the computing requirements associated with graphics, computer component manufacturers have developed specialized graphics processing units (GPUs) to offload some of the intense graphics computing demands from the central processing unit (CPU) to these specialized GPUs. Many of these GPUs are implemented on a Peripheral Component Interconnect (PCI) compatible card and include local graphics memory (also referred to herein as video memory) on the card itself. This local video memory enables the GPU to process graphics more quickly.
Current operating systems typically grant GPU resources (e.g., video memory) on a first come-first served basis. If one application has been allocated all of the GPU resources (e.g., the entire local memory of the GPU), then other applications may not be able to run or they may run with errors. As the use of GPUs may become more prevalent, there is a need for techniques for more fairly allocating GPU resources among applications.